package cn.iocoder.yudao.module.system.wechat_card.dto.create_card;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serializable;

@Data
public class DateInfoDTO implements Serializable {

    @Schema(description = "支持固定时长有效类型 DATE_TYPE_FIX_TIME_RANGE 固定日期有效类型DATE_TYPE_FIX_TERM 永久有效类型DATE_TYPE_PERMANENT", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "有效类型不为空")
    private String type;

    @Schema(description = "type为DATE_TYPE_FIX_TIME_RANGE 时专用，表示起用时间。从1970年1月1日00:00:00至起用时间的秒数，最终需转换为字符串形态传入，下同。（单位为秒）",
            requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "起用时间不为空")
    private String begin_timestamp;

    @Schema(description = "type为DATE_TYPE_FIX_TIME_RANGE 时专用，表示结束时间。（单位为秒）",
            requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "结束时间不为空")
    private String end_timestamp;

    @Schema(description = "type为DATE_TYPE_FIX_TERM时专用，表示自领取后多少天内有效。（单位为天）领取后当天有效填写0。",
            requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "自领取后多少天内有效不为空")
    private String fixed_term;

    @Schema(description = "type为DATE_TYPE_FIX_TERM时专用，表示自领取后多少天开始生效。（单位为天）",
            requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "领取后多少天开始生效不为空")
    private String fixed_begin_term;

}
